package org.frankkie.parcdroid;

import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.RectF;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import java.util.ArrayList;

/**
 *
 * @author frankkie
 */
public class OverlayDinges extends Overlay {

  ArrayList<OverlayPunt> gpsPlekken = new ArrayList<OverlayPunt>();
  ArrayList<OverlayLijn> deLijnen = new ArrayList<OverlayLijn>();

  public OverlayDinges() {
    gpsPlekken.add(new OverlayPunt(51.652872, 5.042809, 0, "Parkeerplaats", "Begin van de parkeerplaats"));
    gpsPlekken.add(new OverlayPunt(51.650568, 5.043443, 1, "Parkeerplaats", "bijna bij Huis van de 5 zintuigen"));
    gpsPlekken.add(new OverlayPunt(51.649579, 5.043689, 2, "Ingang","Huis van de 5 Zintuigen"));
    gpsPlekken.add(new OverlayPunt(51.649369, 5.044220, 3, "Een Plein","Plein Voorbij de ingang"));
    /////////
    deLijnen.add(new OverlayLijn(0, 1));
    deLijnen.add(new OverlayLijn(1,2));
    deLijnen.add(new OverlayLijn(2,3));
  }

  @Override
  public void draw(Canvas canvas, MapView mv, boolean shadow) {
    //PixelCalculator: You need to use MapView.getProjection().toPixels() and .fromPixels().
    // ... [ draw things here ] ...
    Paint paint = new Paint();
    int aantalGpsPlekken = gpsPlekken.size();
    for (int a = 0; a < aantalGpsPlekken; a++) {
      Point p1 = mv.getProjection().toPixels(gpsPlekken.get(a).geoPoint, null);
      RectF r1 = new RectF();
      int grootte = gpsPlekken.get(a).grootte;
      r1.set(p1.x - grootte, p1.y - grootte, p1.x + grootte, p1.y + grootte);
      canvas.drawOval(r1, paint);
    }
    int aantalLijnen = deLijnen.size();
    for (int b = 0; b < aantalLijnen; b++) {
      Point punt1 = mv.getProjection().toPixels(gpsPlekken.get(deLijnen.get(b).punt1).geoPoint, null);
      Point punt2 = mv.getProjection().toPixels(gpsPlekken.get(deLijnen.get(b).punt2).geoPoint, null);
      canvas.drawLine(punt1.x, punt1.y, punt2.x, punt2.y, paint);
    }
  }
}
